1. Field of the Invention
The present invention relates to the dynamic assembly of rules in a business rules management system (BRMS) and more particularly to collaborative rule editing in a BRMS.
2. Description of the Related Art
A business rule management system (BRMS) is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization or enterprise. The decision logic, namely “business rules”, includes policies, requirements, and conditional statements that are used to determine the tactical actions that take place in applications and systems. At the minimum, a BRMS includes a repository, allowing decision logic to be externalized from core application code, tools that allow both technical developers and business experts to define and manage decision logic, and a runtime environment in which applications can invoke decision logic managed within the BRMS and execute the decision logic using a business rules engine.
In a typical BRMS, one or more rules in a rule set are selected according to matching criteria (or exclusionary criteria) for an input. The selected rules are then applied once to the input and this process is repeated for all inputs offered to the system. Thus, to the extent rules can be modified by the end user, the use of a BRMS has been found to reduce or remove reliance on information technology (IT) departments for changes in live systems. The use of a BRMS also has been found to provide increased control over implemented decision logic for compliance and better business management, and also the ability to express decision logic with increased precision, using a business vocabulary syntax and graphical rule representations such as decision tables, trees, scorecards and flows. Finally, the use of a BRMS has been found to improve efficiency of processes through increased decision automation.
In a BRMS, like traditional middleware, multiple different users can collaboratively contribute modules of application logic, for instance, to enforce a business policy, automate a process, instantiate a transaction or produce a tangible result. These modules, referred to in the art as “execution units”, are dynamically assembled into an execution engine to form a single enterprise application program. Of note, collaborative business rule editing environments like a BRMS allow business users to independently edit business rules, however, making changes to one rule in this system may require changes to related rules.
In this regard, with respect to a changed rule related to other rules, the involved variables in the related rules and the changed rule can be dependent upon one another. Alternatively, a particular rule may seem incomplete or require tuning at first glance, when in fact the rule behavior is complemented with one or more other related rules that refine the semantics of the particular rule. Finally, situations occur frequently in which the effects of a given rule are negated or altered unintentionally by another rule in the BRMS, introduced for instance by another user of the BRMS system.
Current BRMS systems provide little sense of possible aggregated effects of rule editing with respect to related rules. Further, while some context can be learned from viewing the structure of a rule to identify referenced variables and manually identifying other rules that involve the same variables, this approach necessarily excludes rules that are frequently evaluated together but share no common variables. Of course, this type of information typically cannot directly be displayed in the rule editing environment, where it would be of the most beneficial to the end user.